package interview.singleton;

/**
 * 5. 静态内部类法
 * <p>
 * 那么，有没有一种延时加载，并且能保证线程安全的简单写法呢？
 * 我们可以把Singleton实例放到一个静态内部类中，这样就避免
 * 了静态实例在Singleton类加载的时候就创建对象，并且由于静
 * 态内部类只会被加载一次，所以这种写法也是线程安全的：
 */
public class Singleton5 {

    private static class Holder {
        private static Singleton5 singleton = new Singleton5();
    }

    private Singleton5() {
    }

    public static Singleton5 getSingleton() {
        return Holder.singleton;
    }
}